home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / DriverGestalt.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  17.9 KB  |  383 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        DriverGestalt.a
  3. ;
  4. ;    Contains:    Driver Gestalt interfaces
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1995-1997 by Apple Computer, Inc., all rights reserved
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__DRIVERGESTALT__') = 'UNDEFINED' THEN
  19. __DRIVERGESTALT__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  25.     include 'OSUtils.a'
  26.     ENDIF
  27.     IF &TYPE('__SCSI__') = 'UNDEFINED' THEN
  28.     include 'SCSI.a'
  29.     ENDIF
  30.  
  31. ; __________________________________________________________________________________
  32. ;  The Driver Gestalt bit in the dCtlFlags 
  33.  
  34. kbDriverGestaltEnable            EQU        2
  35. kmDriverGestaltEnableMask        EQU        $04
  36. ; __________________________________________________________________________________
  37. ;  Driver Gestalt related csCodes 
  38.  
  39. kDriverGestaltCode                EQU        43                    ; various uses 
  40. kDriverConfigureCode            EQU        43                    ; various uses 
  41. kdgLowPowerMode                    EQU        70                    ; Sets/Returns the current energy consumption level 
  42. kdgReturnDeviceID                EQU        120                    ; returns SCSI DevID in csParam[0] 
  43. kdgGetCDDeviceInfo                EQU        121                    ; returns CDDeviceCharacteristics in csParam[0] 
  44. ; __________________________________________________________________________________
  45. ;  Driver Gestalt selectors 
  46.  
  47. kdgVersion                        EQU        'vers'                ; Version number of the driver in standard Apple format 
  48. kdgDeviceType                    EQU        'devt'                ; The type of device the driver is driving. 
  49. kdgInterface                    EQU        'intf'                ; The underlying interface that the driver is using (if any) 
  50. kdgSync                            EQU        'sync'                ; True if driver only behaves synchronously. 
  51. kdgBoot                            EQU        'boot'                ; value to place in PRAM for this drive (long) 
  52. kdgWide                            EQU        'wide'                ; True if driver supports ioWPosOffset 
  53. kdgPurge                        EQU        'purg'                ; Driver purge permission (True = purge; False = no purge) 
  54. kdgSupportsSwitching            EQU        'lpwr'                ; True if driver supports power switching 
  55. kdgMin3VPower                    EQU        'pmn3'                ; Minimum 3.3V power consumption in microWatts 
  56. kdgMin5VPower                    EQU        'pmn5'                ; Minimum 5V power consumption in microWatts 
  57. kdgMax3VPower                    EQU        'pmx3'                ; Maximum 3.3V power consumption in microWatts 
  58. kdgMax5VPower                    EQU        'pmx5'                ; Maximum 5V power consumption in microWatts 
  59. kdgInHighPower                    EQU        'psta'                ; True if device is currently in high power mode 
  60. kdgSupportsPowerCtl                EQU        'psup'                ; True if driver supports following five calls 
  61. kdgAPI                            EQU        'dAPI'                ; API support for PC Exchange 
  62. kdgEject                        EQU        'ejec'                ; Eject options for shutdown/restart (Shutdown Mgr) 
  63. kdgFlush                        EQU        'flus'                ; Determine if disk driver supports flush and if it needs a flush 
  64. kdgVMOptions                    EQU        'vmop'                ; Disk drive's Virtual Memory options 
  65. kdgPhysDriveIconSuite            EQU        'dics'                ; [call sync only] icon suite for Disk Driver physical drive (formerly in csCode 22) 
  66. kdgMediaIconSuite                EQU        'mics'                ; [call sync only] icon suite for Disk Driver media (formerly in csCode 21) 
  67. kdgMediaName                    EQU        'mnam'                ; pascal string describing the Disk Driver (formerly in csCode 21) 
  68. ; __________________________________________________________________________________
  69. ;  Driver Configure selectors 
  70.  
  71. kdcFlush                        EQU        'flus'                ; Tell a disk driver to flush its cache and any hardware caches 
  72. ; __________________________________________________________________________________
  73. ;  control parameter block for Driver Configure calls 
  74. DriverConfigParam        RECORD 0
  75. qLink                     ds.l    1                ; offset: $0 (0)
  76. qType                     ds.w    1                ; offset: $4 (4)
  77. ioTrap                     ds.w    1                ; offset: $6 (6)
  78. ioCmdAddr                 ds.l    1                ; offset: $8 (8)
  79. ioCompletion             ds.l    1                ; offset: $C (12)
  80. ioResult                 ds.w    1                ; offset: $10 (16)
  81. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  82. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  83. ioCRefNum                 ds.w    1                ; offset: $18 (24)        ;  refNum for I/O operation 
  84. csCode                     ds.w    1                ; offset: $1A (26)        ;  == kDriverConfigureCode 
  85. driverConfigureSelector     ds.l    1                ; offset: $1C (28)
  86. driverConfigureParameter  ds.l    1                ; offset: $20 (32)
  87. sizeof                     EQU *                    ; size:   $24 (36)
  88.                         ENDR
  89. ; __________________________________________________________________________________
  90. ;  status parameter block for Driver Gestalt calls 
  91. DriverGestaltParam        RECORD 0
  92. qLink                     ds.l    1                ; offset: $0 (0)
  93. qType                     ds.w    1                ; offset: $4 (4)
  94. ioTrap                     ds.w    1                ; offset: $6 (6)
  95. ioCmdAddr                 ds.l    1                ; offset: $8 (8)
  96. ioCompletion             ds.l    1                ; offset: $C (12)
  97. ioResult                 ds.w    1                ; offset: $10 (16)
  98. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  99. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  100. ioCRefNum                 ds.w    1                ; offset: $18 (24)        ;  refNum for I/O operation 
  101. csCode                     ds.w    1                ; offset: $1A (26)        ;     == kDriverGestaltCode 
  102. driverGestaltSelector     ds.l    1                ; offset: $1C (28)        ;  'sync', 'vers', etc. 
  103. driverGestaltResponse     ds.l    1                ; offset: $20 (32)        ;  Could be a pointer, bit field or other format 
  104. driverGestaltResponse1     ds.l    1                ; offset: $24 (36)        ;  Could be a pointer, bit field or other format 
  105. driverGestaltResponse2     ds.l    1                ; offset: $28 (40)        ;  Could be a pointer, bit field or other format 
  106. driverGestaltResponse3     ds.l    1                ; offset: $2C (44)        ;  Could be a pointer, bit field or other format 
  107. driverGestaltfiller         ds.w    1                ; offset: $30 (48)        ;  To pad out to the size of a controlPB 
  108. sizeof                     EQU *                    ; size:   $32 (50)
  109.                         ENDR
  110. ;  Note that the various response definitions are overlays of the response fields above.
  111. ;   For instance the deviceType response would be returned in driverGestaltResponse.
  112. ;   The DriverGestaltPurgeResponse would be in driverGestaltResponse and driverGestaltResponse1
  113. ;
  114.  
  115. ; __________________________________________________________________________________
  116. ;  Device Types response 
  117. DriverGestaltDevTResponse RECORD 0
  118. deviceType                 ds.l    1                ; offset: $0 (0)
  119. sizeof                     EQU *                    ; size:   $4 (4)
  120.                         ENDR
  121.  
  122. kdgDiskType                        EQU        'disk'                ; standard r/w disk drive 
  123. kdgTapeType                        EQU        'tape'                ; tape drive 
  124. kdgPrinterType                    EQU        'prnt'                ; printer 
  125. kdgProcessorType                EQU        'proc'                ; processor 
  126. kdgWormType                        EQU        'worm'                ; write-once 
  127. kdgCDType                        EQU        'cdrm'                ; cd-rom drive 
  128. kdgFloppyType                    EQU        'flop'                ; floppy disk drive 
  129. kdgScannerType                    EQU        'scan'                ; scanner 
  130. kdgFileType                        EQU        'file'                ; Logical Partition type based on a file (Drive Container) 
  131. kdgRemovableType                EQU        'rdsk'                ; A removable media hard disk drive ie. Syquest, Bernioulli 
  132. ; __________________________________________________________________________________
  133. ;  Device Interfaces response 
  134. DriverGestaltIntfResponse RECORD 0
  135. interfaceType             ds.l    1                ; offset: $0 (0)
  136. sizeof                     EQU *                    ; size:   $4 (4)
  137.                         ENDR
  138.  
  139. kdgScsiIntf                        EQU        'scsi'
  140. kdgPcmciaIntf                    EQU        'pcmc'
  141. kdgATAIntf                        EQU        'ata '
  142. kdgFireWireIntf                    EQU        'fire'
  143. kdgExtBus                        EQU        'card'
  144. ; __________________________________________________________________________________
  145. ;  Power Saving 
  146. DriverGestaltPowerResponse RECORD 0
  147. powerValue                 ds.l    1                ; offset: $0 (0)        ;  Power consumed in µWatts 
  148. sizeof                     EQU *                    ; size:   $4 (4)
  149.                         ENDR
  150. ; __________________________________________________________________________________
  151. ;  Disk Specific 
  152. DriverGestaltSyncResponse RECORD 0
  153. behavesSynchronously     ds.b    1                ; offset: $0 (0)
  154. pad                         ds.b    3                ; offset: $1 (1)
  155. sizeof                     EQU *                    ; size:   $4 (4)
  156.                         ENDR
  157. DriverGestaltBootResponse RECORD 0
  158. extDev                     ds.b    1                ; offset: $0 (0)        ;   Packed target (upper 5 bits) LUN (lower 3 bits) 
  159. partition                 ds.b    1                ; offset: $1 (1)        ;   Unused 
  160. SIMSlot                     ds.b    1                ; offset: $2 (2)        ;   Slot 
  161. SIMsRSRC                 ds.b    1                ; offset: $3 (3)        ;   sRsrcID 
  162. sizeof                     EQU *                    ; size:   $4 (4)
  163.                         ENDR
  164. DriverGestaltAPIResponse RECORD 0
  165. partitionCmds             ds.w    1                ; offset: $0 (0)        ;  if bit 0 is nonzero, supports partition control and status calls 
  166. ;          prohibitMounting (control, kProhibitMounting) 
  167. ;          partitionToVRef (status, kGetPartitionStatus) 
  168. ;          getPartitionInfo (status, kGetPartInfo) 
  169. unused1                     ds.w    1                ; offset: $2 (2)        ;  all the unused fields should be zero 
  170. unused2                     ds.w    1                ; offset: $4 (4)
  171. unused3                     ds.w    1                ; offset: $6 (6)
  172. unused4                     ds.w    1                ; offset: $8 (8)
  173. unused5                     ds.w    1                ; offset: $A (10)
  174. unused6                     ds.w    1                ; offset: $C (12)
  175. unused7                     ds.w    1                ; offset: $E (14)
  176. unused8                     ds.w    1                ; offset: $10 (16)
  177. unused9                     ds.w    1                ; offset: $12 (18)
  178. unused10                 ds.w    1                ; offset: $14 (20)
  179. sizeof                     EQU *                    ; size:   $16 (22)
  180.                         ENDR
  181. DriverGestaltFlushResponse RECORD 0
  182. canFlush                 ds.b    1                ; offset: $0 (0)        ;  Return true if driver supports the 
  183. ;  kdcFlush Driver Configure _Control call 
  184. needsFlush                 ds.b    1                ; offset: $1 (1)        ;  Return true if driver/device has data cached 
  185. ;  and needs to be flushed when the disk volume 
  186. ;  is flushed by the File Manager 
  187. pad                         ds.b    2                ; offset: $2 (2)
  188. sizeof                     EQU *                    ; size:   $4 (4)
  189.                         ENDR
  190. ;  Flags for purge permissions 
  191.  
  192. kbCloseOk                        EQU        0                    ; Ok to call Close 
  193. kbRemoveOk                        EQU        1                    ; Ok to call RemoveDrvr 
  194. kbPurgeOk                        EQU        2                    ; Ok to call DisposePtr 
  195. kmNoCloseNoPurge                EQU        0
  196. kmOkCloseNoPurge                EQU        $03
  197. kmOkCloseOkPurge                EQU        $07
  198. ;  Driver purge permission structure 
  199. DriverGestaltPurgeResponse RECORD 0
  200. purgePermission             ds.w    1                ; offset: $0 (0)        ;  0 = Do not change the state of the driver 
  201. ;  3 = Do Close() and DrvrRemove() this driver 
  202. ;  but don't deallocate driver code 
  203. ;  7 = Do Close(), DrvrRemove(), and DisposePtr() 
  204. purgeReserved             ds.w    1                ; offset: $2 (2)
  205. purgeDriverPointer         ds.l    1                ; offset: $4 (4)        ;  pointer to the start of the driver block (valid 
  206. ;  only of DisposePtr permission is given 
  207. sizeof                     EQU *                    ; size:   $8 (8)
  208.                         ENDR
  209. DriverGestaltEjectResponse RECORD 0
  210. ejectFeatures             ds.l    1                ; offset: $0 (0)        ;   
  211. sizeof                     EQU *                    ; size:   $4 (4)
  212.                         ENDR
  213. ;  Flags for Ejection Features field 
  214.  
  215. kRestartDontEject                EQU        0                    ; Dont Want eject during Restart 
  216. kShutDownDontEject                EQU        1                    ; Dont Want eject during Shutdown 
  217. kRestartDontEject_Mask            EQU        $01
  218. kShutDownDontEject_Mask            EQU        $02
  219. ;    The DriverGestaltVMOptionsResponse is returned by a disk driver in response to a
  220. ;    kdgVMOptions Driver Gestalt request. This allows a disk driver to tell VM a few
  221. ;    things about a disk drive. For example:
  222. ;    
  223. ;    • A drive that should never be in the page fault path should return kAllowVMNoneMask.
  224. ;      Examples of this are drives that have manual eject buttons that are not disabled by
  225. ;      software, drives with very slow throughput, or drives that depend on
  226. ;      a network connection.
  227. ;    • A drive that should never be written to but is safe for read-only file mapping
  228. ;      should return kAllowVMReadOnlyMask. Examples of this are WORM drives where each write
  229. ;      eats write-once space on the disk and CD-ROM drives which are read-only media.
  230. ;    • A drive that should allow VM to create its main backing store file should return
  231. ;      kAllowVMReadWriteMask. Examples of this are fast read/write drives that don't allow
  232. ;      manual eject and don't use a network connection.
  233. ;    
  234. ;    A disk driver must look at the ioVRefNum field of the DriverGestaltParam to determine
  235. ;    what disk drive this call is for. This is a per-drive call, not a per-driver call.
  236. ;    
  237. ;    The only three valid responses to kdgVMOptions at this time are kAllowVMNoneMask,
  238. ;    kAllowVMReadOnlyMask, and kAllowVMReadWriteMask (i.e., setting only kAllowVMWriteBit
  239. ;    is not valid).
  240. ;    
  241. ;    Important: All bits not defined here are reserved and should be set to zero until
  242. ;    they are defined for a specific purpose.    
  243. ;
  244.  
  245. DriverGestaltVMOptionsResponse RECORD 0
  246. vmOptions                 ds.l    1                ; offset: $0 (0)
  247. sizeof                     EQU *                    ; size:   $4 (4)
  248.                         ENDR
  249. ;  Bits and masks for DriverGestaltVMOptionsResponse.vmOptions field 
  250.  
  251. kAllowVMReadBit                    EQU        0                    ; Allow VM to use this drive for read access 
  252. kAllowVMWriteBit                EQU        1                    ; Allow VM to use this drive for write access 
  253. kAllowVMNoneMask                EQU        0
  254. kAllowVMReadOnlyMask            EQU        $01
  255. kAllowVMReadWriteMask            EQU        $03
  256.  
  257. ; __________________________________________________________________________________
  258. ;  CD-ROM Specific 
  259. ;  The CDDeviceCharacteristics result is returned in csParam[0] and csParam[1] of a 
  260. ;   standard CntrlParam parameter block called with csCode kdgGetCDDeviceInfo.
  261. ;
  262.  
  263. CDDeviceCharacteristics    RECORD 0
  264. speedMajor                 ds.b    1                ; offset: $0 (0)        ;  High byte of fixed point number containing drive speed 
  265. speedMinor                 ds.b    1                ; offset: $1 (1)        ;  Low byte of "" CD 300 == 2.2, CD_SC == 1.0 etc. 
  266. cdFeatures                 ds.w    1                ; offset: $2 (2)        ;  Flags field for features and transport type of this CD-ROM 
  267. sizeof                     EQU *                    ; size:   $4 (4)
  268.                         ENDR
  269.  
  270. cdFeatureFlagsMask                EQU        $FFFC                ; The Flags are in the first 14 bits of the cdFeatures field 
  271. cdTransportMask                    EQU        $0003                ; The transport type is in the last 2 bits of the cdFeatures field 
  272.  
  273. ;  Flags for CD Features field 
  274.  
  275. cdMute                            EQU        0                    ; The following flags have the same bit number 
  276. cdLeftToChannel                    EQU        1                    ; as the Audio Mode they represent.  Don't change 
  277. cdRightToChannel                EQU        2                    ; them without changing dControl.c 
  278. cdLeftPlusRight                    EQU        3                    ; Reserve some space for new audio mixing features (4-7) 
  279. cdSCSI_2                        EQU        8                    ; Supports SCSI2 CD Command Set 
  280. cdStereoVolume                    EQU        9                    ; Can support two different volumes (1 on each channel) 
  281. cdDisconnect                    EQU        10                    ; Drive supports disconnect/reconnect 
  282. cdWriteOnce                        EQU        11                    ; Drive is a write/once (CD-R?) type drive 
  283. cdMute_Mask                        EQU        $01
  284. cdLeftToChannel_Mask            EQU        $02
  285. cdRightToChannel_Mask            EQU        $04
  286. cdLeftPlusRight_Mask            EQU        $08
  287. cdSCSI_2_Mask                    EQU        $0100
  288. cdStereoVolume_Mask                EQU        $0200
  289. cdDisconnect_Mask                EQU        $0400
  290. cdWriteOnce_Mask                EQU        $0800
  291. ;  Transport types 
  292.  
  293. cdCaddy                            EQU        0                    ; CD_SC,CD_SC_PLUS,CD-300 etc. 
  294. cdTray                            EQU        1                    ; CD_300_PLUS etc. 
  295. cdLid                            EQU        2                    ; Power CD - eg no eject mechanism 
  296. ;  the following are used by PC Exchange (and houdini)
  297.  
  298. ;  Control Codes
  299.  
  300. kRegisterPartition                EQU        50                    ; PCX needs a new Drive (for a non-macintosh partition found on the disk)
  301. OLD_REGISTER_PARTITION            EQU        301                    ; left in for compatibility with shipping Houdini
  302. THE_DRIVE                        EQU        0                    ; DrvQElPtr for the partition to register
  303. THE_PHYS_START                    EQU        1                    ; The start of the partition in logical blocks
  304. THE_PHYS_SIZE                    EQU        2                    ; The size of the partition in logical blocks
  305. kGetADrive                        EQU        51                    ; control call to ask the driver to create a drive
  306. OLD_GET_A_DRIVE                    EQU        302                    ; left in for compatibility with shipping Houdini
  307. THE_VAR_QUEL                    EQU        0                    ; a VAR parameter for the returned DrvQElPtr
  308. kProhibitMounting                EQU        52                    ; Dont allow mounting of the following drives
  309. kOldProhibitMounting            EQU        2100                ; left in for compatibility with shipping Houdini
  310. kProhibitDevice                    EQU        0                    ; CS Param 0 and 1 (partInfoRecPtr)
  311. kIsContainerMounted                EQU        53
  312. kOldIsContainerMounted            EQU        2201                ; left in for compatibility with shipping Houdini            
  313. kContainerVRef                    EQU        0                    ; CS Param 0 and 1 (VRefNum)
  314. kContainerParID                    EQU        1                    ; CS Param 2 and 3 (Parent ID)
  315. kContainerName                    EQU        2                    ; CS Param 4 and 5 (File Name)
  316. kContainerResponse                EQU        3                    ; CS Param 6 and 7 (VAR pointer to short result)
  317. kMountVolumeImg                    EQU        54
  318. OLD_MOUNT_VOLUME_IMG            EQU        2000
  319. MV_HOST_VREFNUM                    EQU        0
  320. MV_HOST_PAR_ID                    EQU        1
  321. MV_HOST_NAME                    EQU        2
  322. MV_REQ_PERM                        EQU        3
  323. ;  Status Codes
  324.  
  325.  
  326. kGetPartitionStatus                EQU        50                    ; what is the status of this partition?
  327. kOldGetPartitionStatus            EQU        2200                ; left in for compatibility with shipping Houdini
  328. kDeviceToQuery                    EQU        0                    ; CS Param 0 and 1 (partInfoRecPtr)
  329. kDeviceResponse                    EQU        1                    ; CS Param 2 and 3 (VAR pointer to short result)
  330. kGetPartInfo                    EQU        51                    ; Get a partition info record based on the provided vrefnum
  331. kOldGetPartInfo                    EQU        2300                ; left in for compatibility with shipping Houdini
  332. kPartInfoResponse                EQU        0                    ; var parameter (pointer to partInfoRec) CSParam [0-1]
  333. kGetContainerAlias                EQU        52                    ; Get the alias that describes the file this drive was mounted from.
  334. kOldGetContainerAlias            EQU        2400                ; left in for compatibility with shipping Houdini
  335. kGetAliasResponse                EQU        0                    ;    var parameter (pointer to a Handle) CSParam [0-1]
  336. ;  the result codes to come from the driver interface 
  337.  
  338.  
  339. DRIVER_NOT_INSTALLED            EQU        -1
  340. DRIVER_BUSY                        EQU        -2
  341. CANT_MOUNT_WITHIN_THIS_FS        EQU        -3                    ; can only mount container within residing on HFS volume
  342. VOLUME_ALREADY_MOUNTED            EQU        -4                    ; Already Mounted
  343. ;  requisite structures for PCX control and status calls
  344.  
  345.  
  346. kMaxProhibted                    EQU        2                    ; the max number of volumes the PC can possibly have mounted
  347. ;  GestaltSelector for Finding Driver information
  348.  
  349.  
  350. kGetDriverInfo                    EQU        'vdrc'
  351.  
  352. VerifyCmd                        EQU        5
  353. FormatCmd                        EQU        6
  354. EjectCmd                        EQU        7
  355. ;  Partition information passed back and forth between PCX and the driver
  356. partInfoRec                RECORD 0
  357. SCSIID                     ds        DeviceIdent        ; offset: $0 (0)        ;  DeviceIdent for the device
  358. physPartitionLoc         ds.l    1                ; offset: $4 (4)        ;  physical block number of beginning of partition
  359. partitionNumber             ds.l    1                ; offset: $8 (8)        ;  the partition number of this partition
  360. sizeof                     EQU *                    ; size:   $C (12)
  361.                         ENDR
  362. ; typedef struct partInfoRec *            partInfoRecPtr
  363.  
  364. vPartInfoRec            RECORD 0
  365. VPRTVers                 ds.b    1                ; offset: $0 (0)        ;  Virtual partition version number
  366. VPRTType                 ds.b    1                ; offset: $1 (1)        ;  virtual partition type (DOS, HFS, etc)
  367. drvrRefNum                 ds.w    1                ; offset: $2 (2)        ;  Driver Reference number of partition driver
  368. sizeof                     EQU *                    ; size:   $4 (4)
  369.                         ENDR
  370. ; typedef struct vPartInfoRec *            vPartInfoRecPtr
  371.  
  372. ;  Information related to DOS partitions
  373.  
  374. kDOSSigLow                        EQU        $01FE                ; offset into boot block for DOS signature
  375. kDOSSigHi                        EQU        $01FF                ; offset into boot block for DOS signature
  376. kDOSSigValLo                    EQU        $55                    ; DOS signature value in low byte
  377. kDOSSigValHi                    EQU        $AA                    ; DOS signature value in high byte
  378.  
  379.  
  380.     ENDIF ; __DRIVERGESTALT__ 
  381.  
  382.